Engineering organizations may build large projects with huge codebases. Given the speed at which programmers add new code and change existing code in codebases, it is necessary to ensure that no code that causes errors, bad code, is checked in to the codebases. If bad code is checked in, it must be fixed as soon as possible. Typically each project has multiple tests that verify whether the project's codebase is functioning properly or if the code has errors. When tests pass, the code is assumed to be running normally. When tests fail, it is assumed that recent changes to the codebase caused errors in the code.
Automatic test platforms may continually run a project's tests using the latest versions of the project's codebase. These automatic test platforms are commonly used and can indicate when a project's codebase contains bad code. However, most test platforms are unable to provide information about which change to the project's codebase caused tests to fail and created errors in the codebase. Instead, programmers must monitor code health and notice failed tests. The programmers must investigate the causes of test failures manually and then fix the code problems. Such manual investigation is complicated by large number of code changes that may be submitted to the codebases in a short amount of time. Finding culprit code changes that create test failures can be extremely time-consuming and difficult.